package imports;

import java.io.*;
import java.text.SimpleDateFormat;
import java.util.*;

import org.jdom.*;
import org.jdom.input.*;
import org.jdom.output.*;

import dto.DTOCliente;
import dto.DTOCotizacion;
import dto.DTOItemCotizacion;
import dto.DTOItemListaDePrecios;
import dto.DTOListaDePrecios;
import dto.DTOMarca;
import dto.DTONacionalidad;
import dto.DTOProducto;
import dto.DTOProveedor;
import dto.DTOSKF;


public class ImportCotizacion {

	public DTOCotizacion importarSolicitud(String ubicacion) {
	    DTOCotizacion cotizacion = new DTOCotizacion();
	    DTOCliente cliente = new DTOCliente();
		try {
	         SAXBuilder builder=new SAXBuilder(false); 
	         Document doc=builder.build(ubicacion);
		 	 SimpleDateFormat formateador;
			 formateador = new SimpleDateFormat("dd/mm/yyyy");

	         Element raiz=doc.getRootElement();
	         
	         cliente.setNombre(raiz.getAttributeValue("Nombre"));
	         cotizacion.setCliente(cliente);
	         System.out.println("El nombre del cliente es : " + raiz.getAttributeValue("Nombre"));
	         
	         cotizacion.setCodigo(Integer.valueOf(raiz.getAttributeValue("CodigoCotizacion")));
	         System.out.println("El codigo de cotizacion es : " + raiz.getAttributeValue("CodigoCotizacion"));
	         
	         cotizacion.setFechaInicio(formateador.parse(raiz.getAttributeValue("FechaInicio")));
	         System.out.println("La fecha inicio es : " + raiz.getAttributeValue("FechaInicio"));
	     
	         cotizacion.setFechaFin(formateador.parse(raiz.getAttributeValue("FechaFin")));
	         System.out.println("La fecha fin es : " + raiz.getAttributeValue("FechaFin"));
	         
	         List items=raiz.getChildren("item");
	         
	         Iterator i = items.iterator();
	         
	         Set<DTOItemCotizacion> elementos = new HashSet<DTOItemCotizacion>();
	         DTOItemCotizacion itemCotizacion;
	         DTOProducto dtoProducto;
	         DTOMarca marca;
	         DTONacionalidad nacionalidad;
	         DTOSKF skf;
	         while (i.hasNext()){
	        	 itemCotizacion = new DTOItemCotizacion(null,null,null,null);	            
	        	 dtoProducto = new DTOProducto();
	        	 marca= new DTOMarca();
	             nacionalidad = new DTONacionalidad();
	             skf =  new DTOSKF();
	             
	        	 Element e= (Element)i.next();
	             Element item =e.getChild("ItemPedidos"); 
	             
	             Element producto = item.getChild("SKF");
	             skf.setCodigo(producto.getText());	     
	             
	             producto = item.getChild("nacionalidad");
	             nacionalidad.setNombre(producto.getText());
	             
	             producto = item.getChild("marca");
	             marca.setNombre(producto.getText());
	             dtoProducto.setMarca(marca);
	             dtoProducto.setNacionalidad(nacionalidad);
	             dtoProducto.setSkf(skf);
	             itemCotizacion.setProducto(dtoProducto);
	             
	             item =e.getChild("precio"); 
	             itemCotizacion.setPrecio(Double.valueOf(item.getText()));
	             System.out.println("El precio es : " + Double.valueOf(item.getText()));
	             
	             item =e.getChild("cantidad"); 
	             itemCotizacion.setCantidad(Integer.valueOf(item.getText()));
	             System.out.println("La cantidad es : " + Integer.valueOf(item.getText()));	             
	             
	             item =e.getChild("descuento");	            
	             itemCotizacion.setDescuento(Float.valueOf(item.getText()));
	             System.out.println("El descuento es : " + Float.valueOf(item.getText()));
	            
	             elementos.add(itemCotizacion);
	         }
	         //cotizacion.setItems(elementos);

	     }catch (Exception e){
	         e.printStackTrace();
	         cotizacion= null;
	      }
	     return cotizacion;
	}

}

